package com.hbzhit.modules.sys.dao;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.hbzhit.common.utils.MybatisCache;
import com.hbzhit.modules.sys.entity.SysRoleMenuEntity;
import org.apache.ibatis.annotations.CacheNamespace;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 角色与菜单对应关系
 *
 * @author Mark sunlightcs@gmail.com
 */
@Mapper
@Repository
@CacheNamespace(implementation = MybatisCache.class, eviction = MybatisCache.class)
public interface SysRoleMenuDao extends BaseMapper<SysRoleMenuEntity> {

	/**
	 * 根据角色ID，获取菜单ID列表
	 * @param roleId 角色id
	 * @return 菜单id集合
	 */
	List<Long> queryMenuIdList(Long roleId);

	/**
	 * 根据权限标识，获取有权限用户ID列表
	 * @return 用户id集合
	 */
	List<Long> queryPermUserIdList(@Param(Constants.WRAPPER) Wrapper wrapper);
}
